Kompletní seznam veřejných metod a properties třídy XmlStackBuilder.
Všechny metody jsou volatelné z FoxPro přes wwDotnetBridge.
| Property | Typ | Popis |
|---|---|---|
Depth |
int | Aktuální hloubka zásobníku elementů (read-only) |
CurrentElement |
XElement | Aktuální element na zásobníku (read-only) |
Root |
XElement | Kořenový element (read-only) |
CsvDelimiter |
string | Oddělovač pro CSV export validačních chyb (default ";") |
| Property | Typ | Default | Popis |
|---|---|---|---|
HtmlDocumentTitle |
string | "" |
Název dokumentu v HTML záhlaví |
HtmlCompanyName |
string | "" |
Název firmy v HTML záhlaví |
HtmlReportPeriod |
string | "" |
Období sestavy (např. "12/2025") |
HtmlOutputMode |
string | "print" |
Režim: "print" nebo "interactive" |
HtmlShowTechnicalNames |
bool | false | Zobrazit technické názvy elementů |
HtmlFormatNumbers |
bool | true | Formátovat čísla s oddělovačem tisíců |
HtmlHideEmptyValues |
bool | false | Skrýt prázdné hodnoty |
HtmlXsdValidationPath |
string | "" |
Cesta k XSD pro inline validaci |
HtmlErrorMessage |
string | — | Poslední chybová zpráva (read-only) |
TemplateWarnings |
string | — | Varování z validace JSON šablony (read-only) |
| Property | Typ | Default | Popis |
|---|---|---|---|
BatchOutput |
string | "" |
Batch režim: "" (off), cesta PDF, "PRINTER:", "PRINTER:název" |
ShowProgress |
bool | false | Zobrazit WinForms dialog s průběhem renderování |
PdfFromHtml |
bool | false | Dokumenty: PDF přes HTML→WebView2 místo přímého MigraDoc |
PrintDialog |
bool | false | Zobrazit dialog při tisku (auto-reset po zobrazení) |
PrintFromPage |
int | 0 | Od stránky (0 = od začátku) |
PrintToPage |
int | 0 | Do stránky (0 = do konce) |
PrintCopies |
int | 1 | Počet kopií (1–999) |
PrintDuplex |
int | 0 | 0=default, 1=simplex, 2=oboustranný vertical, 3=horizontal |
PrintCollate |
bool | false | Kompletovat kopie |
BatchPageCount |
int | 0 | Počet stránek v batchi (read-only) |
BatchDocumentCount |
int | 0 | Počet dokumentů v batchi (read-only) |
ShowProgress zobrazí WinForms dialog s progress barem, číslem řádku a tlačítkem "Storno" pro přerušení. Dialog běží na samostatném STA threadu — renderování zůstává synchronní. Při zrušení se nastaví HtmlErrorMessage a Render() vrátí false. Property přežívá Reset() i EndBatch().
| Metoda | Návrat | Popis |
|---|---|---|
CreateRoot(elementName) |
self | Vytvoří kořenový element |
CreateRootWithNamespace(elementName, namespaceName) |
self | Vytvoří kořen s namespace |
Push(elementName) |
self | Přidá child element a vstoupí do něj |
PushWithNamespace(elementName, namespaceName) |
self | Push s explicitním namespace |
Push(elementName, content) |
self | Push s obsahem (text/číslo) |
Pop() |
self | Vystoupí z aktuálního elementu |
PopToRoot() |
self | Vystoupí na kořen |
PopTo(depth) |
self | Vystoupí na zadanou hloubku |
ResetToRoot() |
void | Vystoupí na kořen (void varianta) |
AddAttribute(name, value) |
self | Přidá atribut (prázdné přeskočí) |
AddOptionalAttribute(name, value) |
self | Přidá volitelný atribut |
AddRequiredAttribute(name, value) |
self | Přidá povinný atribut (null → "") |
AddAttributes(params (name, value)[]) |
self | Přidá více atributů najednou |
SetValue(value) |
self | Nastaví textový obsah elementu |
AddElement(elementName) |
self | Přidá prázdný child element |
AddElement(elementName, content) |
self | Přidá child element s obsahem |
AddElement(elementName, content, attributes[]) |
self | Přidá element s obsahem a atributy |
AddElementWithValue(elementName, content) |
self | Přidá element s validací |
AddElementWithXmlContent(elementName, xmlContent) |
self | Vloží surové XML potomky (strip VFPData) |
AddComment(comment) |
self | Přidá XML komentář |
AddCData(data) |
self | Přidá CDATA sekci |
AddNamespace(prefix, namespaceName) |
self | Přidá namespace deklaraci |
SetDefaultNamespace(namespaceName) |
self | Nastaví výchozí xmlns |
| Metoda | Návrat | Popis |
|---|---|---|
ToDocument() |
XDocument | Vrátí interní XDocument |
ToXmlString() |
string | XML jako string |
ToFormattedXmlString() |
string | XML s odsazením |
SaveToFile(filePath) |
void | Uloží XML do souboru |
Reset() |
void | Vymaže XML, zachová batch/print/config |
| Metoda | Návrat | Popis |
|---|---|---|
SetValidationEnabled(enabled) |
void | Zapne/vypne validaci |
RegisterValidationRule(rule) |
void | Registruje pravidlo (regex, min/max, délka) |
RegisterElementNamespace(elemName, nsUri, parent) |
void | Registruje namespace pro element |
RegisterElementNs(elemName, nsUri, parent) |
void | Totéž bez overloadu (FoxPro) |
RegisterRequiredAttribute(key) |
void | Registruje povinný atribut ("Element:Attr") |
GetValidationErrors() |
List | Seznam validačních chyb |
GetValidationErrorCount() |
int | Počet chyb |
HasValidationErrors() |
bool | Jsou chyby? |
GetValidationErrorsAsLog() |
string | Chyby jako textový log |
GetValidationErrorsAsCsv() |
string | Chyby jako CSV |
ClearValidationErrors() |
void | Vymaže chyby |
| Metoda | Návrat | Popis |
|---|---|---|
SaveToHtmlFile(htmlPath, xsdPath) |
bool | Uloží XML jako HTML s popisy z XSD |
ToHtmlString(xsdPath) |
string | Vrátí HTML string |
SaveToHtmlFileWithValidation(htmlPath, xsdPath) |
bool | HTML s inline XSD validací (zvýrazněné chyby) |
SaveXmlFileToHtmlWithValidation(xmlPath, htmlPath, xsdPath) |
bool | HTML z XML souboru s validací |
ValidateTableReportJson(jsonMetadata) |
string | Validuje JSON šablonu tabulkové sestavy |
ValidateDocumentJson(jsonMetadata) |
string | Validuje JSON šablonu dokumentu |
| Metoda | Návrat | Popis |
|---|---|---|
ToTableReport() |
string | HTML sestava (auto-detekce struktury) |
ToTableReportWithHeader(title, company, filter) |
string | HTML sestava se záhlavím |
ToTableReportWithMetadata(jsonMetadata) |
string | HTML sestava s JSON šablonou |
SaveTableReportToFile(htmlPath, title, company, filter) |
bool | Uloží HTML sestavu |
SaveTableReportToFileWithMetadata(htmlPath, jsonMetadata) |
bool | Uloží s JSON šablonou (string) |
SaveTableReportToFileWithMetadataFile(htmlPath, jsonFilePath) |
bool | Uloží s JSON ze souboru (UTF-8) |
GenerateTableReportMetadata() |
string | Vygeneruje JSON šablonu z XML (light) |
GenerateTableReportMetadataFull() |
string | Vygeneruje kompletní JSON šablonu |
| Metoda | Návrat | Popis |
|---|---|---|
ToDocumentHtml(jsonMetadata) |
string | HTML dokument z JSON šablony |
SaveDocumentToFile(htmlPath, jsonMetadata) |
bool | Uloží HTML dokument (JSON string) |
SaveDocumentToFileFromJson(htmlPath, jsonFilePath) |
bool | Uloží HTML dokument (JSON ze souboru) |
Univerzální metody — auto-detekce typu šablony (tabulka/dokument) a formátu výstupu (HTML/PDF/XLSX) z přípony souboru.
| Metoda | Návrat | Popis |
|---|---|---|
Render(outputPath, jsonOrFile) |
bool | Renderuje z interního XML builderu |
RenderFromFiles(outputPath, jsonOrFile, xmlOrFile) |
bool | Renderuje z externích souborů/stringů |
outputPath: přípona určuje formát — .html, .pdf, .xlsx, PRINTER: (tisk)
jsonOrFile: začíná { → JSON string, jinak → cesta k souboru
xmlOrFile: začíná < → XML string, jinak → cesta k souboru
| Metoda | Návrat | Popis |
|---|---|---|
SaveHtmlToPdf(htmlPath, pdfPath) |
bool | Konvertuje existující HTML na PDF |
SaveDocumentToPdf(pdfPath, jsonMetadata) |
bool | Dokument → HTML → PDF |
SaveDocumentToPdfFromJson(pdfPath, jsonFilePath) |
bool | Dokument → PDF (JSON ze souboru) |
SaveTableReportToPdf(pdfPath, jsonMetadata) |
bool | Sestava → HTML → PDF |
IsPdfAvailable() |
bool | Je WebView2 Runtime nainstalován? |
| Metoda | Návrat | Popis |
|---|---|---|
SaveTableReportToPdfDirect(pdfPath, jsonMetadata) |
bool | Sestava → PDF přímo (JSON string) |
SaveTableReportToPdfDirectFromFile(pdfPath, jsonFilePath) |
bool | Sestava → PDF (JSON ze souboru) |
SaveDocumentToPdfDirect(pdfPath, jsonMetadata) |
bool | Dokument → PDF přímo (JSON string) |
SaveDocumentToPdfDirectFromFile(pdfPath, jsonFilePath) |
bool | Dokument → PDF (JSON ze souboru) |
| Metoda | Návrat | Popis |
|---|---|---|
SaveTableReportToXlsx(xlsxPath, jsonMetadata) |
bool | Sestava → Excel (JSON string) |
SaveTableReportToXlsxFromFile(xlsxPath, jsonFilePath) |
bool | Sestava → Excel (JSON ze souboru) |
| Metoda | Návrat | Popis |
|---|---|---|
ConvertFrxToJson(frxXml) |
string | FRX XML → JSON šablona (auto-detekce typu) |
ConvertFrxToJsonFile(frxXmlPath, outputJsonPath) |
bool | FRX soubor → JSON soubor (auto-detekce) |
ConvertFrxToTableReportJson(frxXml) |
string | FRX → JSON (vynuceně tabulka) |
ConvertFrxToDocumentJson(frxXml) |
string | FRX → JSON (vynuceně dokument) |
ConvertFrxToTableReportJsonFile(frxXmlPath, outputJsonPath) |
bool | FRX soubor → JSON soubor (vynuceně tabulka) |
ConvertFrxToDocumentJsonFile(frxXmlPath, outputJsonPath) |
bool | FRX soubor → JSON soubor (vynuceně dokument) |
GenerateSampleXmlFromJson(jsonTemplate) |
string | JSON šablona → vzorové XML |
GenerateSampleXmlFromJsonWithRoot(jsonTemplate, rootName) |
string | Vzorové XML s vlastním kořenem |
GenerateFoxProCodeFromJson(jsonTemplate) |
string | JSON šablona → FoxPro PRG kód |
GenerateFoxProCodeFromJsonWithRoot(jsonTemplate, rootName) |
string | PRG s vlastním kořenem |
ConvertFrxToAllFiles(frxXmlPath, outputFolder) |
bool | FRX → JSON + XML + PRG (auto-detekce) |
ConvertFrxToTableReportAllFiles(frxXmlPath, outputFolder) |
bool | FRX → JSON + XML + PRG (vynuceně tabulka) |
ConvertFrxToDocumentAllFiles(frxXmlPath, outputFolder) |
bool | FRX → JSON + XML + PRG (vynuceně dokument) |
ExtractLiteralsFromJson(jsonTemplate) |
string | Extrahuje přeložitelné texty jako XML |
ExtractLiteralsFromJsonFile(jsonFilePath) |
string | Totéž ze souboru |
Auto-detekce typu (table/document) z FRX někdy klasifikuje špatně. Varianty s vynuceným typem (TableReport/Document v názvu) toto obcházejí.
Generování JSON šablon pro tabulkové sestavy přímo z definice FoxPro kurzoru (cursor schema). Vstupem je string se schématem tabulky a volitelné parametry — výstupem je JSON s odhadnutými šířkami sloupců v mm.
| Metoda | Návrat | Popis |
|---|---|---|
GenerateColumnsFromSchema(cursorSchema, options) |
string | Vrátí JSON fragment s columns a printColumns |
GenerateReportFromSchema(outputJsonPath, cursorSchema, options) |
bool | Zapíše kompletní JSON report šablonu do souboru |
cursorSchema: Dva podporované formáty:
"CREATE TABLE U (Den D, Rada C(2), Castka N(15,2))""Den D,Rada C(2),Castka N(15,2)"options: Řetězec "key1:value1,key2:value2,..." s konfigurací:
| Klíč | Default | Popis |
|---|---|---|
dataFontPt |
8 |
Velikost fontu datových buněk (pt) |
pageSize |
A4 |
Formát papíru: A4, A3 |
orientation |
auto |
portrait, landscape, auto |
maxDecimal |
2 |
Max počet desetinných míst |
maxLenString |
20 |
Max šířka textových sloupců (znaky) |
groups |
— | Skupiny: stredisko;ucet (; odděluje) |
noTotalColumns |
— | Sloupce bez součtů: id;doklad (; odděluje) |
element |
data |
Název XML elementu se záznamy |
title |
— | Nadpis sestavy (podporuje {element.field}) |
tfiltr |
— | Filtr sestavy (podporuje {element.field}) |
culture |
cs-CZ |
Kultura pro formátování |
rowNumbers |
false |
Číslování řádků: false, global, group |
| Metoda | Návrat | Popis |
|---|---|---|
PrintWithDialog(jsonOrFile) |
bool | Tisk s dialogem (XML z builderu) |
PrintFromFilesWithDialog(jsonOrFile, xmlOrFile) |
bool | Tisk s dialogem (externí soubory) |
PrintSilent(jsonOrFile, printer, fromPage, toPage) |
bool | Tichý tisk (XML z builderu) |
PrintFromFilesSilent(jsonOrFile, xmlOrFile, printer, from, to) |
bool | Tichý tisk (externí soubory) |
PrintPdfFile(pdfPath, printerName) |
bool | Tisk PDF přes SumatraPDF |
| Metoda | Návrat | Popis |
|---|---|---|
GetAvailablePrinters() |
string | Seznam tiskáren (oddělené \n) |
GetDefaultPrinter() |
string | Název výchozí tiskárny |
GetReportPageCount(jsonOrFile) |
int | Počet stránek sestavy (−1 = chyba) |
GetPrinterCapabilities(printerName) |
string | Schopnosti tiskárny (duplex, papír, zásobník, barva) |
| Metoda | Návrat | Popis |
|---|---|---|
EndBatch() |
int | Ukončí batch (sloučí PDF / vyčistí). Vrátí počet stránek. |
ResetPrint() |
void | Resetuje tiskové properties na default |
Batch se řídí přes property BatchOutput — viz sekce Properties.
| Metoda | Návrat | Popis |
|---|---|---|
OpenReportEditor(jsonPath, xmlPath) |
bool | Otevře VS Code s IntelliSense + live preview |
OpenReportEditorWithSchemas(jsonPath, xmlPath, schemaFolder) |
bool | Totéž s explicitní cestou ke schématům |
| Metoda | Návrat | Popis |
|---|---|---|
RenderMarkdownToHtml(markdownContent, outputPath) |
bool | Markdown string → HTML soubor |
RenderMarkdownFileToHtml(markdownPath, outputPath) |
bool | Markdown soubor → HTML soubor |
bool. Při false viz HtmlErrorMessage.jsonOrFile — začíná { → JSON string, jinak cesta k souboru.xmlOrFile — začíná < → XML string, jinak cesta k souboru.